home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / MOS / MOSCONFI.D < prev    next >
Encoding:
Modula Definition  |  1990-12-06  |  5.5 KB  |  164 lines

  1. DEFINITION MODULE MOSConfig;
  2.  
  3. (*
  4.  * Enthält globale Konfigurationswerte für die MOS-Module.
  5.  * Die Werte werden den meisten Variablen im Implementationsteil
  6.  * zugewiesen, die standardmäßig eingesetzten Werte stehen in Klammern.
  7.  * Restliche Variablen werden z.B. in 'GEMError' initialisiert, falls
  8.  * dies mitgelinkt wird.
  9.  *)
  10.  
  11. FROM SYSTEM     IMPORT ADDRESS;
  12. FROM SysTypes   IMPORT CHARSET, ExcSet;
  13. FROM MOSGlobals IMPORT SfxStr;
  14.  
  15. (* Loader: *)
  16.  
  17. VAR DftSfx: SfxStr; (* Default Suffix bei 'CallModule' ("MOD") *)
  18.  
  19.     ImpSfx: SfxStr; (* Suffix der importierten Module  ("IMP") *)
  20.  
  21.     MaxModExec: CARDINAL; (* Max. Anzahl gleichz. startbarer Module (100) *)
  22.  
  23.     LoaderMsg: POINTER TO ARRAY [0..24] OF ARRAY [0..49] OF CHAR;
  24.       (* Texte für Loader-Fehlermeld., wird z.B. in 'GEMError' init. *)
  25.  
  26.  
  27. (* Convert: *)
  28.  
  29. VAR RadixChar: CHAR;
  30.   (*
  31.    * Wird bei den REAL-Umwandlungen in Textform zur Trennung der
  32.    * Nachkommastellen verwendet. (",")
  33.    * US-Norm: RadixChar:='.' / Deutsch: RadixChar:=',';
  34.    *)
  35.  
  36. VAR FixToFloatMax, FixToFloatMin: LONGREAL;
  37.   (*
  38.    * Diese Variablen wählen die Darstellungsform von REAL-Zahlen bei
  39.    * Umwandlung mit 'ConvReal' oder Ausgabe mit 'WriteReal':
  40.    * Festkomma, falls FixToFloatMin<=ABS(v) und ABS(v)<=FixToFloatMax,
  41.    * sonst Fließkomma.
  42.    *)
  43.  
  44.  
  45. (* TimeConvert: *)
  46.  
  47. VAR StdDateExp: CARDINAL;               (* (1) *)
  48.  
  49. VAR StdDateMask: ARRAY [0..31] OF CHAR; (* ('DD.MM.YYYY') *)
  50.  
  51. VAR StdTimeExp: CARDINAL;               (* noch unbenutzt *)
  52.  
  53. VAR StdTimeMask: ARRAY [0..9] OF CHAR;  (* ('HH:MM:SS') *)
  54.  
  55. VAR NameOfMonth: ARRAY [1..12] OF ARRAY [0..9] OF CHAR;
  56.   (*
  57.    * Diese Monatsnamen werden verwendet, wenn die Datumsmaske
  58.    * "#UUU..." enthält (s. TimeConvert.DateToText).
  59.    *)
  60.  
  61.  
  62. VAR Separators: CHARSET;
  63.   (*
  64.    * Trennzeichen für ReadToken und die Read-Funktionen aus NumberIO.
  65.    * Beim Lesen werden führende Trennzeichen ignoriert (ausgefiltert),
  66.    * sodaß ein mit ReadToken gelesener String nie ein Trennzeichen
  67.    * enthalten kann.
  68.    *
  69.    * Standardwert:  CHARSET {0C..' '};
  70.    *   (das sind alle Control-Zeichen sowie das Leerzeichen)
  71.    *)
  72.  
  73.  
  74. (* Exceptions, ErrBase, HdlError *)
  75.  
  76. VAR RuntimeErrMsg: ADDRESS;
  77.   (*
  78.    * Zeigt auf ein dynamisch großes Feld mit Texten für möglichst alle
  79.    * in 'MOSGlobals' definierten Laufzeitfehler.
  80.    * Format siehe 'FileErrMsg'.
  81.    *)
  82.  
  83.  
  84. (* Files, Directories *)
  85.  
  86. VAR FileErrMsg: ADDRESS;   (* POINTER TO ARRAY [0..65535] OF RECORD
  87.                                 errNo: INTEGER;
  88.                                 errMsg: ARRAY [0..31] OF CHAR
  89.                               END; *)
  90.   (*
  91.    * Zeigt auf ein dynamisch großes Feld mit Texten für möglichst alle
  92.    * in 'MOSGlobals' definierten Dateifehler.
  93.    *
  94.    * Format:
  95.    * Die Anzahl der Feldelemente ist um Eins größer als die Anzahl benutzter
  96.    * Meldungstexte, dabei müssen hintereinander alle Fehlernummern in belie-
  97.    * biger Reihenfolge mit ihren zugehörigen Texten stehen, als Abschluß
  98.    * dann eine beliebige Fehlernummer mit einem Leertext. Wird ein Text für
  99.    * eine nicht vorkommende Fehlernummer gesucht, wird, jenachdem, ob die
  100.    * Fehlernummer positiv oder negativ ist, der Text für Fehlernummer
  101.    * 32767 bzw. -32768 verwendet.
  102.    * Wenn ein Text das Zeichen '@' enhält, wird dafür die Fehlernummer ein-
  103.    * gesetzt.
  104.    * Ein Beispiel für ein solches Textfeld findet sich in dem Modulsource
  105.    * 'GEMError.I'.
  106.    *)
  107.  
  108.  
  109. (* ErrBase: *)
  110.  
  111. VAR CaughtExceptions: ExcSet;
  112.   (*
  113.    * Bestimmt, welche Exceptions abgefangen werden sollen.
  114.    * (TRAP #6, Überlauf, Bus-Fehler, Adreß-Fehler, Illegale Instruktion)
  115.    *)
  116.  
  117. VAR IgnoreExceptions: ExcSet;
  118.   (*
  119.    * Bestimmt, welche von den abzufangenden Exceptions zeitweise nicht
  120.    * behandelt werden sollen. Damit ist es möglich, kurzzeitig von einem
  121.    * zuvor installierten Monitor die Exception behandeln zu lassen.
  122.    *)
  123.  
  124.  
  125. (* Storage/StorBase: *)
  126.  
  127. VAR MaxBlSize: LONGINT;                         (* (0) *)
  128.   (*
  129.    * Mindestgröße der bei StorBase (GEMDOS) angeforderten Blöcke.
  130.    * Beim Wert Null bestimmt Storage selbst den optimalen Wert
  131.    * (Verfügbarer Speicher DIV 40). Maximalwert: 7F00H.
  132.    * Normalerweise nicht verändern!
  133.    *)
  134.  
  135. VAR ExtendedMemoryAccess: BOOLEAN;              (* (TRUE) *)
  136.   (*
  137.    * Bestimmt, ob StorBase in die Speicherverwaltung des GEMDOS eingreifen
  138.    * darf. Mehr dazu im Modul StorBase.
  139.    *)
  140.  
  141.  
  142. (* Runtime/Coroutinen: *)
  143.  
  144. VAR CoroutineTrapNo: [0..15];                   (* (4) *)
  145.   (*
  146.    * Werden Coroutinen benutzt, muß das Modula-System dazu einen TRAP-Vektor
  147.    * belegen. Der gewählte TRAP-Vektor darf währenddessen nicht von anderen
  148.    * Programmen benutzt werden. Soll ein anderer TRAP als der voreingestellte
  149.    * verwendet werden, muß diese Variable lediglich vor dem ersten Aufruf
  150.    * von NEWPROCESS entsprechend gesetzt werden. Beim ersten NEWPROCESS
  151.    * wird der TRAP-Vektor dann belegt und wird erst bei Beenden des Programms
  152.    * wieder freigegeben (der vorherige Wert wird restauriert). Werden Corou-
  153.    * tinen in residenten Programmen oder Accessories verwendet, bleibt der
  154.    * Vektor dauerhaft belegt. Sollen mehrere Megamax-Programme mit Coroutinen
  155.    * gleichzeitig im Speicher sein (z.B. als ACCs), dürfen sie ruhig alle
  156.    * den selben TRAP-Vektor benutzen.
  157.    * Protos benutzt beispielsweise auch den TRAP Nr. 4 mit der selben
  158.    * Funktion. So gibt es mit diesem residenten Programm keine Probleme.
  159.    *
  160.    * Bei Installation des TRAP-Vektors wird die XBRA-Kennung "MM2C" verwendet.
  161.    *)
  162.  
  163. END MOSConfig.
  164.